#ifndef GAME_HH
#define GAME_HH

#include <iostream>
#include <string>
#include <cstdlib>   //for system function
#include <ctime>     //for random function with seed
#include "Character.hh"
#include "Enemy.hh"
#include "Room.hh"
#include "Item.hh"

//to clear screen
#ifdef _WIN32  // Windows
#define CLEAR "cls"
#else
#define CLEAR "clear"
#endif

using namespace std;

namespace Game
{
    //set up the room configuration
    void setup_rooms(Room* Room1, Room* Room2, Room* Room3, Room* Room4);

    // Clear screen function, calls system command to improve readability (note that some systems may require appropriate permissions)
    void clearScreen();

    void run(Room* CurrentRoom, Character* player);

    void DeleteAllObjects(Room* Room1, Room* Room2, Room* Room3, Room* Room4, Character* player);

    int ReadNumber();

    Item* Move(Room*& currentRoom);

    void Pick_up_Item(Room* currentRoom, Character* player);

    void Attack_Enemy(Room* currentRoom, Character* player, bool* gameOver);

    void View_Inventory(Character* player);

    void View_Status(Character* player);

};






#endif
